<?php
/**
 * 入库字段映射配置（含表备注与字段备注、坐标派生）
 * - table: 无需写前缀，程序自动加 DB_PREFIX
 * - table_comment: 表备注
 * - columns:
 *   - name/type/source/comment：常规字段
 *   - convert：坐标派生（gcj02 | bd09），source 仍填原始 lng/lat 以便识别
 */
return [
    'table' => env('GPS_TABLE', 'gps_positions'),
    'table_comment' => '车载终端位置上报（GPS，含WGS84/GCJ-02/BD-09）',
    'columns' => [
        // 设备信息
        ['name' => 'device_id',    'type' => 'VARCHAR(64) NOT NULL',   'source' => 'deviceNumber', 'comment' => '设备编号'],
        ['name' => 'device_name',  'type' => 'VARCHAR(100) NULL',      'source' => 'deviceName',   'comment' => '设备名称'],

        // 原始坐标（WGS84，厂家提供）
        ['name' => 'longitude_wgs84','type'=>'DECIMAL(10,6) NULL',     'source' => 'lng',          'comment' => '经度(WGS84)'],
        ['name' => 'latitude_wgs84', 'type'=>'DECIMAL(10,6) NULL',     'source' => 'lat',          'comment' => '纬度(WGS84)'],

        // 高德/腾讯（GCJ-02，加偏）
        ['name' => 'longitude_gcj02','type'=>'DECIMAL(10,6) NULL',     'source' => 'lng', 'convert'=>'gcj02', 'comment' => '经度(GCJ-02)'],
        ['name' => 'latitude_gcj02', 'type'=>'DECIMAL(10,6) NULL',     'source' => 'lat', 'convert'=>'gcj02', 'comment' => '纬度(GCJ-02)'],

        // 百度（BD-09）
        ['name' => 'longitude_bd09', 'type'=>'DECIMAL(10,6) NULL',     'source' => 'lng', 'convert'=>'bd09',  'comment' => '经度(BD-09)'],
        ['name' => 'latitude_bd09',  'type'=>'DECIMAL(10,6) NULL',     'source' => 'lat', 'convert'=>'bd09',  'comment' => '纬度(BD-09)'],

        // 时间与状态
        ['name' => 'reported_at',  'type' => 'DATETIME NULL',          'source' => 'time',         'comment' => '设备上报时间'],
        ['name' => 'speed',        'type' => 'FLOAT NULL',             'source' => 'speed',        'comment' => '车速'],
        ['name' => 'voltage',      'type' => 'DECIMAL(6,2) NULL',      'source' => 'electricity',  'comment' => '电压'],
        ['name' => 'direction',    'type' => 'SMALLINT NULL',          'source' => 'direction',    'comment' => '方向角'],
        ['name' => 'positioning',  'type' => 'TINYINT NULL',           'source' => 'positioning',  'comment' => '定位方式'],
        ['name' => 'gsm',          'type' => 'SMALLINT NULL',          'source' => 'gsm',          'comment' => '通信信号'],
        ['name' => 'gps',          'type' => 'TINYINT NULL',           'source' => 'gps',          'comment' => '卫星数'],
        ['name' => 'alarm',        'type' => 'VARCHAR(255) NULL',      'source' => 'alarm',        'comment' => '报警信息'],
        ['name' => 'acc',          'type' => 'VARCHAR(32) NULL',       'source' => 'acc',          'comment' => 'ACC 状态'],

        // 原始与入库时间
        ['name' => 'raw',          'type' => 'JSON NULL',              'source' => null,           'comment' => '原始JSON'],
        ['name' => 'created_at',   'type' => 'DATETIME NOT NULL',      'source' => null,           'comment' => '入库时间'],
    ],
    'indexes' => [
        'KEY idx_device_time (device_id, reported_at)',
        'KEY idx_reported_at (reported_at)',
    ],
];